#include <sys/wait.h>
#include <unistd.h>
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>

int main(int argc, char** argv){
  if(argc != 3){
      printf("SINTAXIS: ./ejercicio5 [TIEMPODEESPERA] [VALORDEESTADO].\n");
      exit(-1);
  }
  int tiempo, estado, status;
  tiempo = atoi(argv[1]);
  estado = atoi(argv[2]);
  pid_t pid;
  pid = fork();
  switch(pid){
      case -1: //Error
        perror("Fork Error");
        printf("errno value = %d\n", errno);
        exit(EXIT_FAILURE);
      break;

      case 0: //Proceso hijo
        sleep(tiempo);
        exit(estado);
      break;

      default: //Proceso padre
      while(pid!=wait(&status));
      if(WIFEXITED(status)){
        printf("El hijo murio y su valor devuelto fue %d.\n", WEXITSTATUS(status));
      }
      if(WIFSIGNALED(status)){
        printf("El hijo murio al recibir la señal %d.\n", WTERMSIG(status));
      }
      break;
  }
  return 0;
}
